package Leetcode第一期;

/**
 * @author : K k
 * @date : 18:53 2020/9/15
 */
public class 翻转单词顺序_58_I {
    public String reverseWords(String s) {
        if (s.trim().length()==0){return "";}
        int p=0;
        int q=s.length()-1;
        StringBuilder sb=new StringBuilder();

        if(p<q){
            while (s.charAt(p)==' '){
                p++;
            }
            while (s.charAt(q)==' '){
                q--;
            }
        }
        int k=p;
        p=q;//同一指向结尾
        while(p>=k || p==0){
            while (s.charAt(p)!=' '){
                p--;
                if (p==-1){
                    break;
                }
            }
            //遇到空格 说明已经是一个单词了
            if (p!=q ){
                //存放单词
                String res = s.substring(p+1, q+1);
                sb.append(res+' ');
                p--;
                q=p;
            }else {
                //说明中间有其他空格
                p--;
                q=p;
            }

        }
        return sb.toString().substring(0,sb.length()-1);
    }

    public static void main(String[] args) {
        翻转单词顺序_58_I x=new 翻转单词顺序_58_I();
        System.out.println(x.reverseWords("the sky is blue"));
    }
}
